using LF.Shared.Dtos.Out;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using LF.Shared.Dtos.Input;

namespace LF.Application.Services
{
    public interface IAccountService : IApplicationService
    {
        /// <summary>
        /// 获取当前用户菜单
        /// </summary>
        /// <returns>菜单列表</returns>
        Result<List<AccountMenus>> GetMenus();

        /// <summary>
        /// 获取账号权限
        /// </summary>
        Result<List<string>> GetPermissions();

        /// <summary>
        /// 登出
        /// </summary>
        Result Logout();

        /// <summary>
        /// 生成验证码
        /// </summary>
        /// <returns>验证码图片</returns>
        FileContentResult GetCaptcha();

        /// <summary>
        /// 验证验证码
        /// </summary>
        /// <param name="captchaInput">验证码输入</param>
        /// <returns>验证结果</returns>
        Result VerifyCaptcha(CaptchaInput captchaInput);

        /// <summary>
        /// 通过openid检查用户是否存在
        /// </summary>  
        /// <param name="openId">微信openid</param>
        /// <returns>用户是否存在</returns>
        public Result<bool> CheckUser(string openId);
    }
}